package com.young.sso.Service;


import com.young.sso.entity.User;
import com.young.sso.exception.BusinessException;

import java.util.Map;

/**
 * 用户业务接口：主要是关于用户登录的
 *
 * @author young
 * @date 2021/11/30 9:25
 */
public interface UserService {


    /**
     * 一键登录
     *
     * @param phone 手机号
     * @param code  短信验证码
     * @return a
     * @throws BusinessException a
     */
    Map<String, Object> login(String phone, String code) throws BusinessException;

    /**
     * 执行用户账号登录的方法
     *
     * @param phone    手机号
     * @param password 密码
     * @return 包含多组信息的键值对
     * @throws BusinessException 自定义异常
     */
    Map<String, Object> loginByPassword(String phone, String password) throws BusinessException;

    /**
     * 通过token获取用户信息的方法
     *
     * @param token 用户的令牌
     * @return 用户的信息
     * @throws BusinessException 自定义异常
     */
    User queryUserByToken(String token) throws BusinessException;

    /**
     * 注册用户
     * @param user
     */
    void addUser(User user) throws Exception;

}
